package cn.bonoon.kernel.menus.privileges;

import cn.bonoon.kernel.menus.ChannelDefinition;
import cn.bonoon.kernel.menus.MenuDefinition;
import cn.bonoon.kernel.menus.MenuableDefinition;
import cn.bonoon.kernel.menus.TabItemDefinition;
import cn.bonoon.kernel.menus.TabsDefinition;

public interface PrivilegeInspector extends ChannelPrivilegeInspector {
	PrivilegeInspector ALL = new PrivilegeInspector() {

		@Override
		public boolean hasPrivilege(ChannelDefinition item) {
			return true;
		}

		@Override
		public boolean hasPrivilege(MenuDefinition item) {
			return true;
		}

		@Override
		public boolean hasPrivilege(MenuableDefinition item) {
			return true;
		}

		@Override
		public boolean hasPrivilege(TabsDefinition item) {
			return true;
		}

		@Override
		public boolean hasPrivilege(TabItemDefinition item) {
			return true;
		}

	};

	boolean hasPrivilege(MenuDefinition item);

	boolean hasPrivilege(MenuableDefinition item);

	boolean hasPrivilege(TabsDefinition item);

	boolean hasPrivilege(TabItemDefinition item);

}
